load data sub by pic
load(file = "C:/Users/andre/Documents/R/data/all_mas.Rdata")
tidy data
all_mas <- all_mas %>% filter(electrode != 65)
all_mas$Picture.number <- all_mas$Picture.number %>% as.factor()
all_mas$PictureCat <- all_mas$PictureCat %>% as.factor()
all_mas$CatNum <- all_mas$CatNum %>% as.factor()
all_mas$subid <- all_mas$subid %>% as.factor()
all_mas$electrode <- all_mas$electrode %>% as.factor()
all_mas %>% head()
Predict 2 categories
prediction_categories <- c("Erotica", "Bodies")
filtered_mas <- all_mas %>% filter(PictureCat %in% prediction_categories)
for sub i in sub id for each cat assign erps to one of 3 folds for each fold assign fold to test data train support vector on fPCA train find fPCA for test based on train predict test save correct percentage

in algorithm
make 3 equally sized sets of ERPs per sub
get fpca scores for training and test
train and test
do for other folds
for number of subjects
split ERPs in to 3 equally sized sets
for number of sets
pull one set for testing
train on other sets
test on final set
save correct %
LS0tDQp0aXRsZTogJ0VSUCBjbGFzc2lmaWNhdGlvbiBieSBzdWInDQphdXRob3I6IEFuZHJldyBILiBGYXJrYXMNCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVlICVCLCAlWScpYCINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdA0KICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShrbml0cikNCmxpYnJhcnkoZmRhcGFjZSkNCmxpYnJhcnkoZmRhKQ0KI2xpYnJhcnkoYmVzdGdsbSkNCiNsaWJyYXJ5KGNhcmV0KQ0KI2xpYnJhcnkoZ2xtbmV0KQ0KDQojIE1ha2Ugc3RhbmRhcmQgZXJyb3IgZnVuY3Rpb24NCnNlIDwtIGZ1bmN0aW9uKHZlYywgbmEucm0gPSBGQUxTRSkgew0KICBzZCh2ZWMsIG5hLnJtKS9zcXJ0KG4oKSkNCn0NCg0KI29wdGlvbnMoInNjaXBlbiI9MTAwLCAiZGlnaXRzIj00KQ0KYGBgDQoNCiMgbG9hZCBkYXRhIHN1YiBieSBwaWMNCg0KYGBge3J9DQpsb2FkKGZpbGUgPSAiQzovVXNlcnMvYW5kcmUvRG9jdW1lbnRzL1IvZGF0YS9hbGxfbWFzLlJkYXRhIikNCmBgYA0KDQojIHRpZHkgZGF0YQ0KDQo8IS0tIHRlc3QgdG8gc2VlIGlmIGRhdGEgZXh0cmFjdGlvbiB3b3JrZWQgLS0+DQo8IS0tIGBgYHtyfSAtLT4NCjwhLS0gYWxsX21hcyAlPiUgLS0+DQo8IS0tICAgZmlsdGVyKGVsZWN0cm9kZSA9PSAzMSkgJT4lIC0tPg0KPCEtLSAgIGdyb3VwX2J5KFBpY3R1cmVDYXQpICU+JSAtLT4NCjwhLS0gICBzdW1tYXJpc2VfYWxsKG1lYW4pICU+JSAtLT4NCjwhLS0gICBwaXZvdF9sb25nZXIoY29scyA9IHN0YXJ0c193aXRoKCJtcyIpLCAtLT4NCjwhLS0gICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAidGltZV9tcyIsIC0tPg0KPCEtLSAgICAgICAgICAgICAgICBuYW1lc19wcmVmaXggPSAibXMiLCAtLT4NCjwhLS0gICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gInZvbHRhZ2UiKSAtPiBob2xkIC0tPg0KDQo8IS0tIGhvbGQkdGltZV9tcyA8LSBob2xkJHRpbWVfbXMgJT4lIGFzLm51bWVyaWMoKSAtLT4NCjwhLS0gaG9sZCRDYXROdW0gPC0gaG9sZCRDYXROdW0gJT4lIGFzLmZhY3RvcigpIC0tPg0KDQo8IS0tIGhvbGQgJT4lIC0tPg0KPCEtLSAgIGdncGxvdChhZXMoeCA9IHRpbWVfbXMsIHkgPSB2b2x0YWdlLCBjb2xvciA9IFBpY3R1cmVDYXQpKSArIC0tPg0KPCEtLSAgIGdlb21fbGluZSgpIC0tPg0KDQo8IS0tIHJtKGhvbGQpIC0tPg0KPCEtLSBgYGAgLS0+DQoNCmBgYHtyfQ0KYWxsX21hcyA8LSBhbGxfbWFzICU+JSBmaWx0ZXIoZWxlY3Ryb2RlICE9IDY1KQ0KDQphbGxfbWFzJFBpY3R1cmUubnVtYmVyIDwtIGFsbF9tYXMkUGljdHVyZS5udW1iZXIgJT4lIGFzLmZhY3RvcigpDQphbGxfbWFzJFBpY3R1cmVDYXQgPC0gYWxsX21hcyRQaWN0dXJlQ2F0ICU+JSBhcy5mYWN0b3IoKQ0KYWxsX21hcyRDYXROdW0gPC0gYWxsX21hcyRDYXROdW0gJT4lIGFzLmZhY3RvcigpDQphbGxfbWFzJHN1YmlkIDwtIGFsbF9tYXMkc3ViaWQgJT4lIGFzLmZhY3RvcigpDQphbGxfbWFzJGVsZWN0cm9kZSA8LSBhbGxfbWFzJGVsZWN0cm9kZSAlPiUgYXMuZmFjdG9yKCkNCg0KYWxsX21hcyAlPiUgaGVhZCgpDQpgYGANCg0KIyBQcmVkaWN0IDIgY2F0ZWdvcmllcw0KDQpgYGB7cn0NCnByZWRpY3Rpb25fY2F0ZWdvcmllcyA8LSBjKCJFcm90aWNhIiwgIkJvZGllcyIpDQpmaWx0ZXJlZF9tYXMgPC0gYWxsX21hcyAlPiUgZmlsdGVyKFBpY3R1cmVDYXQgJWluJSBwcmVkaWN0aW9uX2NhdGVnb3JpZXMpDQpgYGANCg0KDQpmb3Igc3ViIGkgaW4gc3ViIGlkDQpmb3IgZWFjaCBjYXQNCmFzc2lnbiBlcnBzIHRvIG9uZSBvZiAzIGZvbGRzDQpmb3IgZWFjaCBmb2xkDQphc3NpZ24gZm9sZCB0byB0ZXN0IGRhdGENCnRyYWluIHN1cHBvcnQgdmVjdG9yIG9uIGZQQ0EgdHJhaW4NCmZpbmQgZlBDQSBmb3IgdGVzdCBiYXNlZCBvbiB0cmFpbg0KcHJlZGljdCB0ZXN0DQpzYXZlIGNvcnJlY3QgcGVyY2VudGFnZQ0KDQpgYGB7cn0NCiNmb3IgdGVzdGluZw0Kc3ViX2luZGV4IDwtIDENCmNhdF9pbmRleCA8LSAxDQpjYXRfaW5kZXggPC0gMg0KY2hhbm5lbCA8LSAxDQpmb2xkX2luZGV4IDwtIDENCg0Kc3ViX2lkcyA8LSBmaWx0ZXJlZF9tYXMkc3ViaWQgJT4lIHVuaXF1ZSgpDQpudW1iZXJfb2Zfc3VicyA8LSBzdWJfaWRzICU+JSBsZW5ndGgoKQ0KDQpzZXQuc2VlZCgwKQ0KDQpmb3IgKHN1Yl9pbmRleCBpbiAxOm51bWJlcl9vZl9zdWJzKSB7DQogIGN1cnJlbnRfc3ViIDwtIHN1Yl9pZHNbc3ViX2luZGV4XQ0KICANCiAgY3VycmVudF9kYXQgPC0gZmlsdGVyZWRfbWFzICU+JSBmaWx0ZXIoc3ViaWQgPT0gY3VycmVudF9zdWIpDQogIA0KICBjaGFubmVscyA8LSBjdXJyZW50X2RhdCRlbGVjdHJvZGUgJT4lIHVuaXF1ZSgpICU+JSBsZW5ndGgoKQ0KICANCiAgY3VycmVudF9kYXQkZm9sZF9pZCA8LSBOQQ0KICANCiAgY2F0ZWdvcmllcyA8LSBjdXJyZW50X2RhdCRQaWN0dXJlQ2F0ICU+JSB1bmlxdWUoKQ0KICBudW1iZXJfb2ZfY2F0cyA8LSBjYXRlZ29yaWVzICU+JSBsZW5ndGgoKQ0KICANCiAgZm9yIChjYXRfaW5kZXggaW4gMTpudW1iZXJfb2ZfY2F0cykgew0KICAgIGN1cnJlbnRfY2F0IDwtIGNhdGVnb3JpZXNbY2F0X2luZGV4XQ0KICAgIA0KICAgIGZvbGRfa2V5IDwtIGN1cnJlbnRfZGF0ICU+JSBmaWx0ZXIoUGljdHVyZUNhdCA9PSBjdXJyZW50X2NhdCkgJT4lIA0KICAgICAgZHBseXI6OnNlbGVjdChQaWN0dXJlLm51bWJlcikgJT4lIHVuaXF1ZSgpICU+JSANCiAgICAgIG11dGF0ZShmb2xkcyA9IHNhbXBsZShyZXAoMTozLCBsZW5ndGgub3V0ID0gbigpKSkpDQogICAgDQogICAgZm9sZF8xIDwtIGZvbGRfa2V5W2ZvbGRfa2V5JGZvbGRzID09MSxdJFBpY3R1cmUubnVtYmVyDQogICAgZm9sZF8yIDwtIGZvbGRfa2V5W2ZvbGRfa2V5JGZvbGRzID09MixdJFBpY3R1cmUubnVtYmVyDQogICAgZm9sZF8zIDwtIGZvbGRfa2V5W2ZvbGRfa2V5JGZvbGRzID09MyxdJFBpY3R1cmUubnVtYmVyDQogICAgDQogICAgY3VycmVudF9kYXRbY3VycmVudF9kYXQkUGljdHVyZS5udW1iZXIgJWluJSBmb2xkXzEsXSRmb2xkX2lkIDwtIDENCiAgICBjdXJyZW50X2RhdFtjdXJyZW50X2RhdCRQaWN0dXJlLm51bWJlciAlaW4lIGZvbGRfMixdJGZvbGRfaWQgPC0gMg0KICAgIGN1cnJlbnRfZGF0W2N1cnJlbnRfZGF0JFBpY3R1cmUubnVtYmVyICVpbiUgZm9sZF8zLF0kZm9sZF9pZCA8LSAzDQogIH0NCiAgDQogIGZvciAoY2hhbm5lbCBpbiAxOmNoYW5uZWxzKSB7DQogICAgDQogICAgY3VycmVudF9kYXRfb25lX2NoYW4gPC0gY3VycmVudF9kYXQgJT4lIGZpbHRlcihlbGVjdHJvZGUgPT0gY2hhbm5lbCkNCiAgICANCiAgICBjdXJyZW50X2RhdCRQQzFfc2NvcmUgPC0gTkENCiAgICANCiAgICBmb3IgKGZvbGRfaW5kZXggaW4gMTozKSB7DQogICAgICANCiAgICAgIHRyYWluX2RhdCA8LSBjdXJyZW50X2RhdF9vbmVfY2hhbiAlPiUgZmlsdGVyKGZvbGRfaWQgIT0gZm9sZF9pbmRleCkNCiAgICAgIA0KICAgICAgdGVzdF9kYXQgPC0gY3VycmVudF9kYXRfb25lX2NoYW4gJT4lIGZpbHRlcihmb2xkX2lkID09IGZvbGRfaW5kZXgpDQogICAgICANCiAgICAgIGp1c3Rfdm9sdHNfb3Zlcl90aW1lIDwtIGN1cnJlbnRfZGF0WywgODpuY29sKGN1cnJlbnRfZGF0KV0NCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAgcmVzX2ZhY2UgPC0gcmVmdW5kOjpmcGNhLmZhY2UoWSA9IGFzLm1hdHJpeCgoanVzdF92b2x0c19vdmVyX3RpbWUpKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd2YWxzID0gdGltZV9tcywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucGMgPSA0KQ0KICAgICAgDQogICAgICByb3dzX3RvX2FkZCA8LSBjYmluZC5kYXRhLmZyYW1lKGRhdF9vbmVfY2hhbm5lbFssMTo0XSxyZXNfZmFjZSRzY29yZXMpDQogICAgICANCiAgICAgIG91dHB1dCA8LSByYmluZC5kYXRhLmZyYW1lKG91dHB1dCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3NfdG9fYWRkKQ0KICAgIH0NCiAgICANCiAgfQ0KICANCn0NCg0KDQpgYGANCg0KYGBge3J9DQpyZXAoMTozLCBsZW5ndGgub3V0ID0gNSkgJT4lIHNhbXBsZSgpDQoNCnRyYWluX2RhdFs0LDg6bmNvbCh0cmFpbl9kYXQpXSAlPiUgdW5saXN0KCkgJT4lIHBsb3QoKQ0KYGBgDQoNCg0KaW4gYWxnb3JpdGhtDQoNCiMgbWFrZSAzIGVxdWFsbHkgc2l6ZWQgc2V0cyBvZiBFUlBzIHBlciBzdWINCg0KIyBnZXQgZnBjYSBzY29yZXMgZm9yIHRyYWluaW5nIGFuZCB0ZXN0DQoNCiMgdHJhaW4gYW5kIHRlc3QgDQoNCiMgZG8gZm9yIG90aGVyIGZvbGRzDQoNCmZvciBudW1iZXIgb2Ygc3ViamVjdHMNCg0Kc3BsaXQgRVJQcyBpbiB0byAzIGVxdWFsbHkgc2l6ZWQgc2V0cw0KICANCmZvciBudW1iZXIgb2Ygc2V0cw0KDQpwdWxsIG9uZSBzZXQgZm9yIHRlc3RpbmcNCiAgICANCnRyYWluIG9uIG90aGVyIHNldHMNCiAgICANCnRlc3Qgb24gZmluYWwgc2V0DQogICAgDQpzYXZlIGNvcnJlY3QgJQ0KICAgIA0K